package com.lu.controller;


import com.lu.constants.HttpStatusEnum;
import com.lu.dto.AjaxResultPage;
import com.lu.dto.Result;
import com.lu.pojo.BlogConfig;
import com.lu.service.BlogConfigService;
import com.lu.utils.DateUtils;
import com.lu.utils.ResultGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import org.springframework.stereotype.Controller;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author xiaolu
 * @since 2020-05-27
 */
@Controller
@RequestMapping("/admin")
public class ConfigController {

    @Autowired
    private BlogConfigService blogConfigService;

    // 跳转到系统信息页面
    @GetMapping("/v1/blogConfig")
    public String blogConfig(){
        return "admin/sys-edit";
    }

    // 返回系统信息配置
    @GetMapping("/v1/blogConfig/list")
    @ResponseBody
    public AjaxResultPage<BlogConfig> list(){

        AjaxResultPage<BlogConfig> page = new AjaxResultPage<>();
        // 查询所有
        List<BlogConfig> list = blogConfigService.list();
        System.out.println(list);
        if (CollectionUtils.isEmpty(list)){
            page.setCode(500);
            return page;
        }
        page.setData(blogConfigService.list());
        return page;
    }

    // 修改系统信息
    @PostMapping("/v1/blogConfig/edit")
    public Result<String> edit(BlogConfig blogConfig){

        // 设置更新时间为当前本地时间
        blogConfig.setUpdateTime(DateUtils.getLocalCurrentDate());
        // 根据id修改系统信息
        boolean flag = blogConfigService.updateById(blogConfig);
        if (flag){
            return ResultGenerator.getResultByHttp(HttpStatusEnum.OKK);
        }else{
            return ResultGenerator.getResultByHttp(HttpStatusEnum.INTERNAL_SERVER_ERROR);
        }
    }

    // 跳转到增加系统信息页面
    @GetMapping("/v1/blogConfig/add")
    public String add(){

        return "admin/sys-add";
    }

    // 提交增加的系统信息
    @PostMapping("/v1/blogConfig/add")
    @ResponseBody
    public Result<String> add1(BlogConfig blogConfig){

        blogConfig.setCreateTime(DateUtils.getLocalCurrentDate());
        blogConfig.setUpdateTime(DateUtils.getLocalCurrentDate());
        // 插入一条记录（选择字段，策略插入）
        boolean flag = blogConfigService.save(blogConfig);
        if (flag){
            return ResultGenerator.getResultByHttp(HttpStatusEnum.OKK);
        }else {
            return ResultGenerator.getResultByHttp(HttpStatusEnum.INTERNAL_SERVER_ERROR);
        }
    }

    // 删除系统信息
    @ResponseBody
    @PostMapping("/v1/blogConfig/del")
    public Result<String> delBlogConfig(@RequestParam String configField){
        boolean flag = blogConfigService.removeById(configField);
        if (flag){
            return ResultGenerator.getResultByHttp(HttpStatusEnum.OKK);
        }else{
            return ResultGenerator.getResultByHttp(HttpStatusEnum.INTERNAL_SERVER_ERROR);
        }
    }

}

